/*
  学习目标：使用dispatch和action去修改状态， 修改count的值+1 和 -1
  步骤：
*/

import { createStore } from 'redux';

const store = createStore(function (state = { count: 0 }, action) {
  console.warn('进到仓库了, action是  ----->', action);
  // 💥从reducer函数的第二个形参中接收到action
  // 2. reducer负责修改state，新值覆盖旧值， 返回新值
  if (action.type === 'add') {
    // 👎 不可变数据
    // state.count ++
    return {
      ...state,
      count: state.count + 1,
    };
  }

  if (action.type === 'des') {
    return {
      ...state,
      count: state.count - 1,
    };
  }
  return state;
});

console.log('第1次获取state  ----->  ', store.getState());

// 1. 使用dispatch发起一个action
// 💥React中Action是一个带有type属性对象
store.dispatch({ type: 'add' });
console.log('第2次获取state  ----->  ', store.getState());

store.dispatch({ type: 'des' });
console.log('第3次获取state  ----->  ', store.getState());
